﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

// 合并两个有序数组
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
	int n1 = m - 1;
	int n2 = n - 1;
	int nn = m + n - 1;

	while (n1 >= 0 && n2 >= 0)
	{
		if (nums1[n1] < nums2[n2])
		{
			nums1[nn--] = nums2[n2--];
		}
		else
		{
			nums1[nn--] = nums1[n1--];
		}
	}
	while (n2 >= 0)
	{
		nums1[nn--] = nums2[n2--];
	}
}

int main()
{
	int nums1[] = { 1, 2, 3, 0, 0, 0 };
	int nums2[] = { 2, 5, 6 };
	int nums1sz = sizeof(nums1) / sizeof(nums1[0]);
	int nums2sz = sizeof(nums2) / sizeof(nums2[0]);
	int m = 3;
	int n = 3;
	merge(nums1, nums1sz, m, nums2, nums2sz, n);
	for (int i = 0; i < nums1sz; i++)
	{
		printf("%d ", nums1[i]);
	}
	return 0;
}